SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TRSIST_GRUP_U01]
/*------------------------------------------------------*/
/*---- Empresa           : OFISIS S.A.              ----*/
/*---- Cliente           : OFISIS S.A.              ----*/
/*---- Sistema           : Seguridad                ----*/
/*---- Módulo            : Seguridad                ----*/
/*---- Programa          : Adiciona permisos grupo  ----*/
/*---- Script            : TRSIST_GRUP              ----*/
/*---- Nombre SP         : SP_TRSIST_GRUP_U01       ----*/
/*---- Desarrollado por  : Gianmarco Lindo Huertas  ----*/
/*---- Fecha Creación    : 21/06/2002               ----*/
/*---- Base de Datos     : SQL                      ----*/
/*---- Versión           : 7.0                      ----*/
/*---- Invoca a SP       :                          ----*/
/*------------------------------------------------------*/
/*------------------------------------------------------*/
/*---- Modificado 1 por     :                       ----*/
/*---- Fecha Modificación   :                       ----*/    
/*---- Detalle Modificación :                       ----*/  
/*----                                              ----*/
/*------------------------------------------------------*/
/*------------------------------------------------------*/
/*---- Comentarios:Borra los permisos de un grupo y ----*/
/*---- Adiciona los permisos de un grupo a otro     ----*/
/*---- a otro grupo                                 ----*/
/*------------------------------------------------------*/
/*------------------------------------------------------*/
/*---- Drop Proc SP_TRSIST_GRUP_U01                 ----*/
/*---- Grant All On SP_TRSIST_GRUP_U01 to PUBLIC    ----*/
/*------------------------------------------------------*/
(@ISCO_USUA           TD_VC_008, 
 @ISCO_GRUP_DEST      TD_VC_008,
 @ISCO_GRUP           TD_VC_008 )
as
BEGIN TRAN SP_TRSIST_GRUP_U01


 Delete From  TRMENU_GRUP
 Where  CO_GRUP = @ISCO_GRUP_DEST
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End
 Delete From  TRSIST_GRUP
 Where  CO_GRUP = @ISCO_GRUP_DEST
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End
 Delete From  TRINFO_GRUP
 Where  CO_GRUP = @ISCO_GRUP_DEST
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End
 Delete From  TREMPR_GRUP
 Where  CO_GRUP = @ISCO_GRUP_DEST
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End
 -- Accesos a Sistemas --
 Insert  into  TRSIST_GRUP(CO_SIST, CO_GRUP,CO_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI)
 Select  t1.CO_SIST, @ISCO_GRUP_DEST,
         @ISCO_USUA, @ISCO_USUA, GETDATE()
 From    TRSIST_GRUP t1
 Where   t1.CO_GRUP = @ISCO_GRUP
 And     NOT EXISTS( Select t2.CO_SIST
                       From TRSIST_GRUP t2
                      Where t2.CO_SIST = t1.CO_SIST
                        And t2.CO_GRUP = @ISCO_GRUP_DEST )
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End

 -- Accesos a Opciones del Menu --
 Insert  into  TRMENU_GRUP(CO_SIST, CO_MODU,
                           CO_MENU, CO_GRUP,
                           ST_ADIC, ST_MODI,
                           ST_ANUL, ST_REPO, CO_USUA_CREA,CO_USUA_MODI,FE_USUA_MODI)
 Select  t1.CO_SIST, t1.CO_MODU,
         t1.CO_MENU, @ISCO_GRUP_DEST,
         t1.ST_ADIC, t1.ST_MODI,
         t1.ST_ANUL, t1.ST_REPO,
         @ISCO_USUA, @ISCO_USUA, GETDATE()
 From    TRMENU_GRUP t1
 Where   t1.CO_GRUP = @ISCO_GRUP
 And     NOT EXISTS(Select t2.CO_SIST
                      From TRMENU_GRUP t2
                     Where t2.CO_SIST = t1.CO_SIST
                       And t2.CO_MODU = t1.CO_MODU
                       And t2.CO_MENU = t1.CO_MENU
                       And t2.CO_GRUP = @ISCO_GRUP_DEST )
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End

 -- Accesos a Empresas --
 Insert  into  TREMPR_GRUP(CO_EMPR, CO_GRUP,
                           CO_USUA_CREA,CO_USUA_MODI,FE_USUA_MODI)
 Select  t1.CO_EMPR, @ISCO_GRUP_DEST,
         @ISCO_USUA, @ISCO_USUA, GETDATE()
 From    TREMPR_GRUP t1
 Where   t1.CO_GRUP = @ISCO_GRUP
 And     NOT EXISTS( Select t2.CO_EMPR
                       From TREMPR_GRUP t2
                      Where t2.CO_EMPR = t1.CO_EMPR
                        And t2.CO_GRUP = @ISCO_GRUP_DEST )
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End

 -- Accesos a Informacion Empresa --
 Insert  into  TRINFO_GRUP(CO_EMPR, TI_INF1,
                           TI_INF2, CO_GRUP,
                           CO_USUA_CREA,CO_USUA_MODI,FE_USUA_MODI)
 Select  t1.CO_EMPR, t1.TI_INF1,
         t1.TI_INF2, @ISCO_GRUP_DEST,
         @ISCO_USUA, @ISCO_USUA, GETDATE()
 From    TRINFO_GRUP t1
 Where   t1.CO_GRUP = @ISCO_GRUP
 And     NOT EXISTS( Select t2.CO_EMPR
                       From TRINFO_GRUP t2
                      Where t2.CO_EMPR = t1.CO_EMPR
                        And t2.TI_INF1 = t1.TI_INF1
                        And t2.TI_INF2 = t1.TI_INF2
                        And t2.CO_GRUP = @ISCO_GRUP_DEST )
 If @@error != 0
 Begin
    Rollback tran SP_TRSIST_GRUP_U01
    Return
 End
COMMIT TRAN SP_TRSIST_GRUP_U01
return
/*------------------------------ Fin -------------------------------*/

GO
